import os
import random
import sys

from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap

from resources.config import PET_ACTIONS_MAP, ROOT_DIR

from PyQt5.QtWidgets import QApplication, QWidget, QLabel


class DesktopPet(QWidget):
    def __init__(self, parent=None, **kwargs):
        super(DesktopPet, self).__init__(parent)
        # # 设置窗口标志，包括：
        # #     Qt.FramelessWindowHint：创建一个没有标题栏和边框的窗口，即无边框窗口。
        # #     Qt.WindowStaysOnTopHint：将窗口保持在顶部，即始终位于其他窗口之上。
        # #     Qt.SubWindow：将窗口标记为子窗口。
        # self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.SubWindow)
        # # 设置窗口是否自动填充背景，默认为True。在这里设置为False，表示不自动填充背景。
        # self.setAutoFillBackground(False)
        # # 设置窗口背景为透明。这个属性设为True可以使窗口背景透明，从而实现半透明或完全透明的效果。
        # self.setAttribute(Qt.WA_TranslucentBackground, True)
        # # 设置窗口背景为透明。这个属性设为True可以使窗口背景透明，从而实现半透明或完全透明的效果。
        # self.repaint()

        # 随机导入一个
        self.pet_images, icon_path = self.randomLoadPetImages()
        # 当前显示的图片
        self.image = QLabel(self)
        self.loadImage(self.pet_images[0][0])

    def loadImage(self, image_path):
        '''从给定路径加载图片'''
        return QPixmap(image_path)  # 假设您使用 PyQt 的 QPixmap 来加载图片

    def randomLoadPetImages(self):
        '''随机导入一个桌面的所有图片'''
        pet_name = random.choice(list(PET_ACTIONS_MAP.keys()))
        actions = PET_ACTIONS_MAP[pet_name]
        pet_images = []
        for action in actions:
            pet_images.append(
                [self.loadImage(os.path.join(ROOT_DIR, pet_name, 'shime' + item + '.png')) for item in action])
        icon_path = os.path.join(ROOT_DIR, pet_name, 'humai.png')
        return pet_images, icon_path


# 按装订区域中的绿色按钮以运行脚本。
if __name__ == '__main__':
    app = QApplication(sys.argv)
    win = DesktopPet()
    win.show()
    sys.exit(app.exec_())

